package com.yanqu.road.entity.autodata.chuhan.data;

import com.alibaba.fastjson.annotation.JSONField;

import java.util.ArrayList;
import java.util.List;

public class CrossChuHanTeam {

    private long userId;

    private int occupation;
    private List<Integer> patronsList = new ArrayList<>(); // 有序

    private int cityId;
    private int targetCityId; // 战略目标

    private long beginMoveTime; // 玩家点移动的时间
    private List<Integer> routeList = new ArrayList<>(); // 待移动城市
    private long arriveTime; // 下个城市到达时间，出发时才设置，加速时不会小于当前时间
    private long smallMoveTime; // 当前城池出发时间

    private long soldierNum;
    private long maxSoldier;

    @JSONField(serialize = false)
    private long moveUpdateTime;

    public CrossChuHanTeam() {
    }

    public CrossChuHanTeam(long userId, int occupation) {
        this.userId = userId;
        this.occupation = occupation;
    }

    public long getMoveUpdateTime() {
        return moveUpdateTime;
    }

    public long getUserId() {
        return userId;
    }

    public void setUserId(long userId) {
        this.userId = userId;
    }

    public int getOccupation() {
        return occupation;
    }

    public void setOccupation(int occupation) {
        this.occupation = occupation;
    }

    public List<Integer> getPatronsList() {
        return patronsList;
    }

    public void setPatronsList(List<Integer> patronsList) {
        this.patronsList = patronsList;
    }

    public int getCityId() {
        return cityId;
    }

    public void setCityId(int cityId) {
        this.cityId = cityId;
    }

    public int getTargetCityId() {
        return targetCityId;
    }

    public void setTargetCityId(int targetCityId) {
        this.targetCityId = targetCityId;
    }

    public long getBeginMoveTime() {
        return beginMoveTime;
    }

    public void setBeginMoveTime(long beginMoveTime) {
        this.beginMoveTime = beginMoveTime;
    }

    public List<Integer> getRouteList() {
        return routeList;
    }

    public void setRouteList(List<Integer> routeList) {
        this.routeList = routeList;
        moveUpdateTime = System.currentTimeMillis() - 500; // 提前500毫秒避免卡点
    }

    public long getArriveTime() {
        return arriveTime;
    }

    public void setArriveTime(long arriveTime) {
        this.arriveTime = arriveTime;
    }

    public long getSoldierNum() {
        return soldierNum;
    }

    public void setSoldierNum(long soldierNum) {
        this.soldierNum = soldierNum;
    }

    public long getMaxSoldier() {
        return maxSoldier;
    }

    public void setMaxSoldier(long maxSoldier) {
        this.maxSoldier = maxSoldier;
    }

    public long getSmallMoveTime() {
        return smallMoveTime;
    }

    public void setSmallMoveTime(long smallMoveTime) {
        this.smallMoveTime = smallMoveTime;
    }
}
